package com.hc.config;

import org.springframework.util.StringUtils;
import org.springframework.web.servlet.LocaleResolver;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Locale;

/**
 * @author hs
 * @date 2021/05/03
 */
public class MyLocaleResolver implements LocaleResolver {

    /**
     * 解析请求
     * @param httpServletRequest
     * @return
     */
    @Override
    public Locale resolveLocale(HttpServletRequest httpServletRequest) {
        //获取请求参数
        String language = httpServletRequest.getParameter("language");
        //照着源码AcceptHeaderLocaleResolver类中的resolveLocale写
        Locale locale = Locale.getDefault();
        //如果没有就使用默认的 判断请求参数是否为空
        // 如果请求参数携带了国际化的参数，我们就需要判断了请求参数了，这时传递过来的是language为 'zh_CN'
        if (!StringUtils.isEmpty(language)){
            //'zh_CN'  一个就是国家 另一个就是地区
            String[] s = language.split("_");
            //一个就是国家 另一个就是地区
            locale = new Locale(s[0], s[1]);
        }
        return locale;
    }

    @Override
    public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {
    }
}
